<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<!-- DW6 -->
<head>
<!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
<title>Text</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../mm_health_nutr.css" type="text/css">
<script language="javascript">
//--------------- LOCALIZEABLE GLOBALS ---------------
var d=new Date();
var monthname=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
//Ensure correct for language. English is "January 1, 2004"
var TODAY = monthname[d.getMonth()] + " " + d.getDate() + ", " + d.getFullYear();
//---------------   END LOCALIZEABLE   ---------------
</script>
</head>
<body bgcolor="#F4FFE4">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr bgcolor="#D5EDB3">
    <td colspan="2" rowspan="2">&nbsp;</td>
    <td width="658" height="50" id="logo" valign="bottom" align="center" nowrap>Garrafas de 3 y 4 litros</td>
    <td width="103">&nbsp;</td>
  </tr>

  <tr bgcolor="#D5EDB3">
    <td height="19" id="tagline" valign="top" align="center">Grupo 15</td>
	<td width="103">&nbsp;</td>
  </tr>

  <tr>
    <td colspan="4" bgcolor="#5C743D"><img src="mm_spacer.gif" alt="" width="1" height="2" border="0"></td>
  </tr>

  <tr>
    <td colspan="4" bgcolor="#99CC66" background="mm_dashed_line.gif"><img src="mm_dashed_line.gif" alt="line decor" width="4" height="3" border="0"></td>
  </tr>

  <tr bgcolor="#99CC66">
  <td>&nbsp;</td>
  	<td colspan="3" id="dateformat" height="20"><a href="../index.html">INDICE</a>&nbsp;&nbsp;::&nbsp;&nbsp;<a href="../arquitectura.html#juegos">JUEGOS&nbsp; </a>::&nbsp;&nbsp;<script language="javascript">
      document.write(TODAY);	</script>	</td>
  </tr>

  <tr>
    <td colspan="4" bgcolor="#99CC66" background="mm_dashed_line.gif"><img src="mm_dashed_line.gif" alt="line decor" width="4" height="3" border="0"></td>
  </tr>

  <tr>
    <td colspan="4" bgcolor="#5C743D"><img src="mm_spacer.gif" alt="" width="1" height="2" border="0"></td>
  </tr>
 <tr>
    <td width="40">&nbsp;</td>
    <td colspan="2" valign="top">&nbsp;<br>
    &nbsp;<br>
    <table border="0" cellspacing="0" cellpadding="2" width="783">
        <tr>
          <td width="779" class="pageName">Garrafas</td>
        </tr>
        <tr>
          <td class="bodyText">
			<ul>
				<li><font size="3">Descripción del juego:</font></li>
			</ul>
			<p>Se tienen dos garrafas vacías con capacidades de 3 y 4 litros 
			respectivamente pero sin ninguna marca de medida parcial. Las 
			garrafas pueden vaciarse o llenarse de agua, así como verter el 
			contenido de una a otra (operadores). El objetivo consiste en tener exactamente 2 
			litros de agua en la garrafa de 4 litros. </p>
			<ul>
				<li>
				<p align="justify"><font size="3">Operadores</font></p></li>
			</ul>
			<ol>
				<li>Llenar garrafa 3: Si el valor de la garrafa3 &lt; 3</li>
				<li>Llenar garrafa 4: Si el valor de la garrafa4 &lt; 4</li>
				<li>Vaciar garrafa 3: Si el valor de la garrafa3 &gt; 0</li>
				<li>Vaciar garrafa 4: Si el valor de la garrafa4 &gt; 0</li>
				<li>Volcar garrafa 3 en garrafa 4: Si el valor de la garrafa3 &gt; 
				0 y el valor de la garrafa4 &lt; 4</li>
				<li>Volcar garrafa 4 en garrafa 3: Si el valor de la garrafa4 &gt; 
				0&nbsp; y el valor de la garrafa3 &lt; 3</li>
			</ol>
			<ul>
				<li>
				<p align="justify"><font size="3">Algoritmo</font></p></li>
			</ul>
			<p align="justify">Algoritmo BreadthFirstSearch o Primero en 
			Anchura: Los nodos se expanden por orden no decreciente de 
			profundidad. No ejecuta vuelta atrás, ya que todos los nodos de 
			profundidad p se expanden antes que cualquier nodo de profundidad 
			p+1. Utiliza una cola para almacenar los nodos abiertos.</p>
			<p align="justify">Se utiliza esta búsqueda, ya que al no poseer una 
			medida heurística, permite por su completitud generar una solución 
			válida, sin generar un espacio de estados demasiado amplio sin 
			afectar a la eficiencia temporal.</p>
			<p align="center"><img border="0" src="images/garraf2.jpg"></p>
		  <ul>
				<li>
				<p align="justify"><font size="3">Espacio de estados</font></p>
				</li>
			</ul>
			<p align="justify">Estado (L3,L4)<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 &gt;= 0 ^ L3 &lt;=3<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 &gt;= 0 ^ L4 &lt;= 4<p align="justify">
			Se utiliza una representación mínima del estado actual, ya que al 
			implementar una búsqueda ciega, no se puede generar exceso de 
			información. Con esta representación se conocen los contenidos de 
			cada garrafa que permiten determinar los operadores que se pueden 
			aplicar.<p align="justify">Estados inalcanzables:<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(1,1)<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(1,2)<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(1,3)<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(2,1)<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(2,2)<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(2,3)
			
			<p align="justify">Estado inicial:<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(0,0)
			
			<p align="justify">Estado final:<br>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Estado(0,2)</td>
			
		</tr>
        <tr>
          <td class="bodyText"><span class="pageName">Diagrama UML</span></td>
        </tr>
        <tr>
          <td class="bodyText"><p>A continuacion se expone el diagrama uml de este juego para aportar informacion adicional sobre su implementacion.</p>
          <p align="center"><img src="images/Garrafas.jpg" alt="UML Garrafas 3 y 4 litros" width="700" height="700"></p></td>
        </tr>
      </table>
  </tr>

 <tr>
    <td width="40">&nbsp;</td>
    <td width="67">&nbsp;</td>
    <td width="658">&nbsp;</td>
	<td width="103">&nbsp;</td>
  </tr>
</table>
</body>
</html>